<?php

namespace ListMenu\Form;

use Zend\Form\Form;
use Zend\Db\Adapter\AdapterInterface;
use Zend\Db\Adapter\Adapter;

class ListMenuForm extends Form
{
	protected $adapter;
    public function __construct($name = null,AdapterInterface $dbAdapter)
    {
    	$this->adapter =$dbAdapter;
        parent::__construct('menuForm');
      //Khai báo phương thức sử dụng trong FORM
        $this->setAttribute('method', 'post');       
        //Khai báo kiểu dữ liệu được gửi lên server 
        $this->setAttribute('enctype','multipart/form-data');

         $this->add(array(
         'type' => 'Zend\Form\Element\Select',
         'name' => 'select_menu',
	         'options' => array(
	         'label' => 'Loại Menu:',
	         'empty_option' => '- Chọn loại Menu-',
	         'value_options' => array(
	         'B' => 'Back End',
	         'F' => 'Front End',
	         ),
         ),
         'attributes' => array(
	         'class' => 'select-menu form-control',
	         'required' => 'required',
	         ),
        ));
        
        $this->add(array(
            'name' => 'name_menu',
            'attributes' => array(
                        'type' => 'text',
        				'class' => 'form-control name_menu',
        				'placeholder' => 'Nhập tên menu',
        				'id' => 'name_menu',
            		    'required' => 'required',
            ),
            'options' => array(
                'label' => 'Tên Menu:',
            ),
        ));

        $this->add(array(
        		'name' => 'hidden_menu',
        		'attributes' => array(
        				'type' => 'Hidden',
        				'class' => 'hidden_menu',
        		),
        ));
        
        $this->add(array(
        		'name' => 'router_menu',
        		'attributes' => array(
        				'type' => 'text',
        				'class' => 'form-control router_menu',
        				'placeholder' => 'Nhập Router',
        				'id' => 'router_menu',
        				'required' => 'required',
        		),
        		'options' => array(
        				'label' => 'Router:',
        		),
        ));
        
        $this->add(array(
        		'type' => 'Zend\Form\Element\Checkbox',
        		'name' => 'activemenu',
        		'options' => array(
        				'label' => 'Public:',
        				'checked_value' => '1',
        				'unchecked_value' => '0',
        		),
        		'attributes' => array(
        				'id' => 'checkbox-public'
        		)
        ));
        
        $this->add(array(
        		'name' => 'submit',
        		'attributes' => array(
        				'type' => 'submit',
        				'value' => 'Lưu lại',
        				'class' => 'btn btn-primary',
        				'id'  => 'luulai'
        		),
        ));
        
        $this->add(array(
        		'type' => 'Zend\Form\Element\Select',
        		'name' => 'menus',
        		'options' => array(
        				'disable_inarray_validator' => false,
        				'label' => 'Loại Menu Cha:',
        				'empty_option' => '--Chọn Menu Cha--',
        				'value_options' =>$this->getOptionsForSelectMenu(),
        				'autocomplete' => 'off',
        				'inarrayvalidator' => false,
        		),
        		'attributes' => array(
        				'class' => 'form-control menus',
        		),
        ));
    }

    public function getOptionsForSelectMenu()
    {
    	$dbAdapter = $this->adapter;
    	$sql       = 'SELECT ID_M,LABEL_M  FROM menu WHERE ID_SUB_M = 0 ORDER BY ID_M ASC';
    	$statement = $dbAdapter->query($sql);
    	$result    = $statement->execute();
    
    	$selectData = array();
    
    	foreach ($result as $res) {
    		$selectData[$res['ID_M']] = $res['LABEL_M'];
    	}
    	return $selectData;
    }
}